/*
 * @Author: quit
 * @Date: 2023-03-10 22:18:34
 * @LastEditTime: 2023-03-11 13:25:10
 * @Descripttion: static \ readonly 只读属性,只允许存在属性声明和索引签名中 静态方法和属性
 * ES6中提供了静态方法,ES7中提供了静态数据;TS中两个都有且更加完善 使用 readonly 关键字将属性设置为只读,只读属性只能在声明时或构造函数里被初始化
 * 我们可以认为类具有 实例部分与静态部分.定义静态属性和方法,只需要在对应的属性和方法上面加上static
 * class _Animal {
 * color:string = green''}
    readonly MyNa:stringme =绿泡泡 "
    "
let v2 = new _Animal
console.log(v2.color),v2.MyName;
 * @notice:
 */

/**
 * @description: 静态方法和属性
 *
 */
class Animal {
    color: string = 'grey';
    static height: number = 176;
    move() {
        console.log('Animal and move handle');
    }
    static eat() {
        console.log('静态方法');
    }
}
let v1 = new Animal();
console.log(Animal.height);
console.log(Animal.eat);
console.log(v1.color);
console.log(v1.move);

/**
 * @description: readonly 只读属性,只允许存在属性声明和索引签名中
 * 使用 readonly 关键字将属性设置为只读,只读属性只能在声明时或构造函数里被初始化
 */
class _Animal {
    color: string = 'green';
    readonly MyName: string = '绿泡泡';
}
let v2 = new _Animal();
console.log(v2.color, v2.MyName);
v2.color = 'blue';
// v2.MyName = 'edit'; // 在编译阶段报错 无法修改
console.log(v2.color);

//
//
//
export {};
